﻿using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;

namespace QuanLyPhongGiam
{
    /// <summary>
    /// Sử dụng linQ de truy van du lieu tu DB. Dung entity framework 6 de tao ra cac lop entity.
    /// </summary>
    class Query
    {
        static DateTime nowPlus7 = DateTime.Today.AddDays(7);
        #region TruongHop
        /// <summary>
        /// Tra ve du lieu cua table Truong hop
        /// </summary>
        /// <returns></returns>
        public static List<TruongHopTamGiam> GetAllTruongHop()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.TruongHopTamGiams.OrderByDescending(x => x.MaTruongHop).ToList();
            }
        }
        /// <summary>
        ///  Tra ve du lieu cua Truong Hop dua vao ID
        /// </summary>
        /// <param name="truongHopId"></param>
        /// <returns></returns>
        public static TruongHopTamGiam GetTruongHopById(int? truongHopId)
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.TruongHopTamGiams.FirstOrDefault(x => x.MaTruongHop == truongHopId);
            }
        }
        #endregion

        #region GiaiQuyet_THA_HinhThuc
        /// <summary>
        /// Tra ve du lieu cua Hinh Thuc giai quyet
        /// </summary>
        /// <returns></returns>
        public static List<HinhThucGiaiQuyet> GetAllHinhThucGiaiQuyet()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.HinhThucGiaiQuyets.OrderByDescending(x => x.MaHinhThucGiaiQuyet).ToList();
            }
        }
        /// <summary>
        ///  Tra ve du lieu cua Hinh Thuc giai quyet
        /// </summary>
        /// <param name="maHinhThucGiaiQuyet"></param>
        /// <returns></returns>
        public static HinhThucGiaiQuyet GetHinhThucGiaiQuyetById(int? maHinhThucGiaiQuyet)
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.HinhThucGiaiQuyets.FirstOrDefault(x => x.MaHinhThucGiaiQuyet == maHinhThucGiaiQuyet);
            }
        }
        #endregion

        #region BiCans
        public const string detail = "Detail";
        public const string edit = "Edit";
        public const string insertNew = "insertNew";
        /// <summary>
        /// Tra ve object BiCan
        /// </summary>
        /// <param name="biCan_ID"></param>
        /// <returns></returns>
        public static BiCan GetBiCans(string biCan_ID)
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.BiCans.FirstOrDefault(x => x.MaBiCan == biCan_ID);
            }
        }

        /// <summary>
        /// Tra ve list cac bi Can
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.BiCans.OrderBy(x => x.TenBiCan).ToList();
            }
        }

        #region TamGiamDieuTra
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiam()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_DenNgay < DateTime.Today
                              && t.DT_1_TuNgay.Equals(null)
                                && t.DT_2_TuNgay.Equals(null)
                                && t.DT_2_DenNgay.Equals(null)
                                && t.DT_3_TuNgay.Equals(null)
                                && t.DT_3_DenNgay.Equals(null)
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiam_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.DT_DenNgay > DateTime.Now
                              && t.DT_DenNgay <= nowPlus7
                              && t.DT_1_TuNgay.Equals(null)
                                && t.DT_2_TuNgay.Equals(null)
                                && t.DT_2_DenNgay.Equals(null)
                                && t.DT_3_TuNgay.Equals(null)
                                && t.DT_3_DenNgay.Equals(null)
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }

        #endregion

        #region TamGiamDieuTraGiaHanLan1
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan1()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_1_DenNgay < DateTime.Today
                                && t.DT_2_TuNgay.Equals(null)
                                && t.DT_2_DenNgay.Equals(null)
                                && t.DT_3_TuNgay.Equals(null)
                                && t.DT_3_DenNgay.Equals(null)
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan1_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {

                var events = (from t in db.BiCans
                              where (
                              t.DT_1_DenNgay > DateTime.Now
                              && t.DT_1_DenNgay <= nowPlus7
                                  && t.DT_2_TuNgay.Equals(null)
                                  && t.DT_2_DenNgay.Equals(null)
                                  && t.DT_3_TuNgay.Equals(null)
                                  && t.DT_3_DenNgay.Equals(null)
                                  && t.DT_DacBiet_TuNgay.Equals(null)
                                  && t.DT_DacBiet_DenNgay.Equals(null)
                                  && t.DT_BoSung_TuNgay.Equals(null)
                                  && t.DT_BoSung_DenNgay.Equals(null)
                                  && t.TT_TuNgay.Equals(null)
                                  && t.TT_DenNgay.Equals(null)
                                  && t.TT_1_TuNgay.Equals(null)
                                  && t.TT_1_DenNgay.Equals(null)
                                  && t.XX_TuNgay.Equals(null)
                                  && t.XX_DenNgay.Equals(null)
                                  && t.XX_1_TuNgay.Equals(null)
                                  && t.XX_1_DenNgay.Equals(null)
                                  && t.THA_TuNgay.Equals(null)
                                  && t.THA_DenNgay.Equals(null)
                                  && t.XXPT_TuNgay.Equals(null)
                                  && t.XXPT_DenNgay.Equals(null)
                                  && t.ChuyenNoiKhac_Ngay.Equals(null)
                                  && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                  && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                  && t.KhangCao_Ngay.Equals(null)
                                  && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraGiaHanLan2
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan2()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_2_DenNgay < DateTime.Today
                                && t.DT_3_TuNgay.Equals(null)
                                && t.DT_3_DenNgay.Equals(null)
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan2_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.DT_2_DenNgay > DateTime.Today
                              && t.DT_2_DenNgay <= nowPlus7
                                && t.DT_3_TuNgay.Equals(null)
                                && t.DT_3_DenNgay.Equals(null)
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraGiaHanLan3
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan3()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_3_DenNgay < DateTime.Today
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanLan3_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.DT_3_DenNgay > DateTime.Today
                               && t.DT_3_DenNgay <= nowPlus7
                                && t.DT_DacBiet_TuNgay.Equals(null)
                                && t.DT_DacBiet_DenNgay.Equals(null)
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraGiaHanDacBiet
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanDacBiet()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_DacBiet_DenNgay < DateTime.Today
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamGiaHanDacBiet_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.DT_DacBiet_DenNgay > DateTime.Today
                              && t.DT_DacBiet_DenNgay <= nowPlus7
                                && t.DT_BoSung_TuNgay.Equals(null)
                                && t.DT_BoSung_DenNgay.Equals(null)
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraBoSung
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamDieuTraBoSung()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.DT_BoSung_DenNgay < DateTime.Today
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamDieuTraBoSung_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.DT_BoSung_DenNgay > DateTime.Today
                              && t.DT_BoSung_DenNgay <= nowPlus7
                                && t.TT_TuNgay.Equals(null)
                                && t.TT_DenNgay.Equals(null)
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraTruyTo
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamTruyTo()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.TT_DenNgay < DateTime.Today
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamTruyTo_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.TT_DenNgay > DateTime.Today
                                && t.TT_DenNgay <= nowPlus7
                                && t.TT_1_TuNgay.Equals(null)
                                && t.TT_1_DenNgay.Equals(null)
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraGiaHanTruyTo
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamTruyToGiaHan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.TT_1_DenNgay < DateTime.Today
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamTruyToGiaHan_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.TT_DenNgay > DateTime.Today
                             && t.TT_DenNgay <= nowPlus7
                                && t.XX_TuNgay.Equals(null)
                                && t.XX_DenNgay.Equals(null)
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamDieuTraGiaHanTruyTo
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamXetXu()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.XX_DenNgay < DateTime.Today
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamXetXu_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.XX_DenNgay > DateTime.Today
                            && t.XX_DenNgay <= nowPlus7
                                && t.XX_1_TuNgay.Equals(null)
                                && t.XX_1_DenNgay.Equals(null)
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion
        #region TamGiamDieuTraGiaHanTruyToGiaHan
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamXetXuGiaHan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.XX_1_DenNgay < DateTime.Today
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamXetXuGiaHan_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.XX_1_DenNgay > DateTime.Today
                              && t.XX_1_DenNgay <= nowPlus7
                                && t.THA_TuNgay.Equals(null)
                                && t.THA_DenNgay.Equals(null)
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region TamGiamThiHanhAn
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamThiHanhAn()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.THA_DenNgay < DateTime.Today
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamThiHanhAn_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.THA_DenNgay > DateTime.Today
                               && t.THA_DenNgay <= nowPlus7
                                && t.XXPT_TuNgay.Equals(null)
                                && t.XXPT_DenNgay.Equals(null)
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion

        #region XetXuPhucTham
        /// <summary>
        /// Danh Sach cac bi can bi quá hạn
        /// Tức là ngày hôm ni lớn hơn đến ngày tạm giam
        /// Và chưa được thiết lập gia hạn tạm giam lần 1
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_XetXuPhucTham()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (t.XXPT_DenNgay < DateTime.Today
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                                )
                              select t).ToList();
                return events;
            }
        }
        /// <summary>
        ///  Danh Sach cac bi can bi chuẩn bị đến hạn trong tuần
        /// Tức là ngày hôm ni nhỏ hơn đến ngày tạm giam
        /// Và ngày đến hạn trừ ngày hôm ni <=7
        /// </summary>
        /// <returns></returns>
        public static List<BiCan> GetAllBiCans_HasOutExpired_TamGiamXetXuPhucTham_DenHanTrongTuan()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                var events = (from t in db.BiCans
                              where (
                              t.XXPT_DenNgay > DateTime.Today
                               && t.XXPT_DenNgay <= nowPlus7
                                && t.ChuyenNoiKhac_Ngay.Equals(null)
                                && t.GiaiQuyet_THA_DenNgay.Equals(null)
                                && t.GiaiQuyet_XXPT_DenNgay.Equals(null)
                                && t.KhangCao_Ngay.Equals(null)
                                && t.Tron_Ngay.Equals(null)
                              )
                              select t
                              ).ToList();
                return events;
            }
        }
        #endregion
        /// <summary>
        /// Them mới một bị can
        /// </summary>
        /// <param name="biCan"></param>
        /// <returns></returns>
        public static int AddBiCans(BiCan biCan)
        {
            int rs = -1;
            using (var db = new QuanLySinhVienEntities())
            {
                db.BiCans.Add(biCan);
                rs = db.SaveChanges();
            }
            return rs;
        }

        /// <summary>
        /// Cập nhật một bị can
        /// </summary>
        /// <param name="biCan"></param>
        /// <returns></returns>
        public static int UpdateBiCans(BiCan biCan)
        {
            int rs = -1;
            using (var db = new QuanLySinhVienEntities())
            {
                db.BiCans.Attach(biCan);
                db.Entry(biCan).State = EntityState.Modified;
                rs = db.SaveChanges();
            }
            return rs;
        }
        #endregion

        #region DangNhap
        public static NguoiDung GetNguoiDung(string nguoiDung_ID, string matKhau)
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.NguoiDungs.FirstOrDefault(x => x.TenNguoiDung == nguoiDung_ID && x.MatKhau == matKhau);
            }
        }
        #endregion

        #region ThongKe
        public static List<ThongKe> GetAllThongKe()
        {
            using (var db = new QuanLySinhVienEntities())
            {
                return db.ThongKes.OrderByDescending(x => x.TT).ToList();
            }
        }
        #endregion
    }
}
